iT邦幫忙

2025 iThome 鐵人賽

DAY 6
0
AI & Data

AI 營養師 + Web3 數位健康護照系列 第 6

Day6. 從零開始打造個人專屬 AI 營養顧問 Ep. 5:訓練「台灣夜市小吃」的 YOLO 模型

  • 分享至 

  • xImage
  •  

本日重點

  • 介紹 YOLO 物件偵測架構與台灣夜市小吃應用場景
  • 使用 Roboflow 準備並匯入小吃影像資料集
  • 實際訓練 YOLO 模型,觀察訓練與驗證過程
  • 調整參數優化模型效能,避免過擬合及提升辨識率
  • AI 夜市偵測專案的成果驗收

一、認識 YOLO

YOLO(You Only Look Once)是一種知名的即時物件偵測模型,由 Joseph Redmon 和 Ali Farhadi 於 2015 年首次提出,技術核心在於能夠「一次」處理輸入影像,快速且準確地辨識出多個物體並標註其位置,因此廣泛運用於自動駕駛、安防監控、工業自動化等多項領域。

1. YOLO 的技術原理

YOLO 屬於單階段物件偵測系統,將物件偵測問題轉化為一個回歸任務:輸入一張影像,模型會將其劃分成小的網格(如7x7、13x13),每個網格都預測是否有物體、物體的位置(中心座標與寬高)、以及物體的分類和置信度。骨幹網路(通常是卷積神經網路CNN)會先萃取影像深度特徵,接著由預測頭直接推斷出所有物件及座標,因此運算速度極快,能在毫秒等級完成檢測,適合高要求的即時應用。

2. YOLO 的演進與版本

YOLO自2015年問世以來,歷經多次改版,目前最新的版本是YOLOv11。

  • YOLO 演進示意圖:

https://ithelp.ithome.com.tw/upload/images/20250920/20129220HRQDHX2p0j.jpg
(示意圖由 Copilot 協助生成)


二、為什麼要使用 YOLO ?

1. YOLO 的優勢與應用

YOLO 以即時性和高效能見長,能同時檢測多種不同大小的物件,並且直接推論所有結果,省去複雜後處理流程,因此特別適合需要快速反應的場合。常見應用包括:

  • 自動駕駛車輛的路況和行人偵測
  • 工業製程瑕疵檢查
  • 智慧監控的人臉/物品即時辨識
  • 無人機或機器人視覺等

2. 目標

  • 實際應用:即時偵測夜市攤位美食,提供營養資訊、熱量計算,或推薦素食替代品。
  • 相關案例:類似零售商店物品偵測(如超市貨架),已用 Roboflow + YOLOv5 實現庫存追蹤,可延伸到夜市攤位管理。

三、匯出 Roboflow「台灣夜市小吃」的 YOLO 模型

1. 對 YOLO 有個初步的概念後,就繼續昨天的進度:

參考 Day5 的步驟,收集台灣夜市美食圖片,上傳到 Roboflow 後標註品項名稱,並將資料集分割成訓練/驗證/測試集


https://ithelp.ithome.com.tw/upload/images/20250920/20129220DpW1nY28QU.jpg


溫馨小提醒:
dataset split 的比例建議是 7:2:1,以這次的數量分配來說,理想狀態是 119 : 34 : 17(訓練/驗證/測試組),驗證組的數量有比較少了一點

  • 按下「Train Model」,選擇「Custom Training」


https://ithelp.ithome.com.tw/upload/images/20250920/20129220dQgpT0mlZA.jpg


如果有需要再做資料處理的,例如:資料增強 (Data Augmentation),可以在這個時候調整。接著就會進到 Select Model Architechure 的項目

  • 可參閱:

Day3. 從零開始打造個人專屬 AI 營養顧問 Ep. 2:資料來源、收集與應用


https://ithelp.ithome.com.tw/upload/images/20250920/20129220gQp4Hl2hWU.jpg


2. 匯出 YOLO 格式

可以從 Roboflow 直接匯出 YOLOv11/YOLOv8/yolov5 (依照個人需求選擇)格式資料夾,包含 images、labels 子資料夾和 dataset.yaml 設定檔。


https://ithelp.ithome.com.tw/upload/images/20250920/20129220oReynwjroF.jpg


一切都順利的話,就開始「Start Training」


https://ithelp.ithome.com.tw/upload/images/20250920/20129220ZlE48dL5Zv.jpg


Training in progress. 大約需要26分鐘~


https://ithelp.ithome.com.tw/upload/images/20250920/20129220S6JhtTySK8.jpg


3. 模型訓練(Google Colab / Python)

可用 YOLOv8 官方 repo 或 Ultralytics YOLO 套件進行訓練。這部分明天會透過 Google Colab 實作


四、測試評估與成果驗收

  1. 上傳測試夜市美食圖,檢查正確率(precision)、召回率(recall)、平均精度(mAP)。
  • 補充說明:

指標名稱 中文名稱 定義公式 說明 常見用途
Precision 精確率 $\displaystyle Precision = \frac{TP}{TP + FP}$ 在所有被模型「預測為正確」的結果中,實際上有多少是真的正確。→ 強調「預測的準確度」。 適合錯誤代價高的場景(如:醫學影像辨識、食物分類誤標)
Recall 召回率 $\displaystyle Recall = \frac{TP}{TP + FN}$ 在所有實際「應該被辨識出來」的項目中,模型成功辨識的比例。→ 強調「找出所有正確項目的能力」。 適合漏判代價高的場景(如:食安監測、異常偵測)
mAP 平均精度(Mean Average Precision) $\displaystyle mAP = \frac{1}{N} \sum_{i=1}^{N} AP_i$ 綜合考慮 Precision 與 Recall 的整體表現,通常用於物件偵測任務。AP(Average Precision) 是各類別的 Precision-Recall 曲線下的面積,mAP 是所有類別 AP 的平均值。 常用於 YOLO、SSD、Faster R-CNN 等影像辨識模型評估

  1. 混淆矩陣分析 容易誤判的美食,人工補訓練。
  • 補充說明:

混淆矩陣是分類模型中最常用的評估工具之一,用來比較「模型預測結果」與「實際標籤」之間的差異。

實際值\預測值 Positive(正類) Negative(負類)
Positive(正類) TP(True Positive)實際是正類,預測也正確 FN(False Negative)實際是正類,但預測錯誤
Negative(負類) FP(False Positive)實際是負類,但誤判為正類 TN(True Negative)實際是負類,預測也正確

五、延伸閱讀


上一篇
Day5. 從零開始打造個人專屬 AI 營養顧問 Ep. 4:使用 Roboflow 訓練「台灣夜市美食」偵測模型
下一篇
Day7. 從零開始打造個人專屬 AI 營養顧問 Ep. 6:Google Colab 實作台灣夜市小吃的YOLO模型
系列文
AI 營養師 + Web3 數位健康護照35
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言